home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Uip / misc / X400_addr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.4 KB  |  79 lines

  1. /* x400_adr.c: basically ckadr but stripped */
  2. /*    returns the x400 form of the given addresses */
  3.  
  4. # ifndef lint
  5. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Uip/misc/RCS/X400_addr.c,v 6.0 1991/12/18 20:39:34 jpo Rel $";
  6. # endif
  7.  
  8. /*
  9.  * $Header: /xtel/pp/pp-beta/Uip/misc/RCS/X400_addr.c,v 6.0 1991/12/18 20:39:34 jpo Rel $
  10.  *
  11.  * $Log: X400_addr.c,v $
  12.  * Revision 6.0  1991/12/18  20:39:34  jpo
  13.  * Release 6.0
  14.  *
  15.  */
  16.  
  17.  
  18.  
  19. #include "util.h"
  20. #include "adr.h"
  21. #include "retcode.h"
  22. #include "list_rchan.h"
  23.  
  24.  
  25. static int    responsibility = NO;
  26. static int    parse= CH_UK_PREF;
  27. static void    parse_address();
  28.  
  29.  
  30. /* ---------------------  Begin  Routines  ---------------------------------- */
  31.  
  32. main(argc, argv)
  33. int       argc;
  34. char       **argv;
  35. {
  36.     char    buf[BUFSIZ];
  37.     int    i = 1;
  38.     int    opt;
  39.  
  40.     sys_init(argv[0]);
  41.     
  42.     argc--;
  43.     argv++;
  44.         
  45.     if (argc == 0) 
  46.         while (gets(buf) != NULL)
  47.             parse_address(buf);
  48.     else 
  49.         while (argc--)
  50.             parse_address(*argv++);
  51. }
  52.  
  53. static void parse_address(str)
  54. char    *str;
  55. {
  56.     ADDR        *ad;
  57.     RP_Buf        rp;
  58.     int        origType;
  59.     int        type, first;
  60.     LIST_RCHAN    *ix;
  61.  
  62.  
  63.     if (index (str, '@'))
  64.         type = AD_822_TYPE; 
  65.     else if (str[0] == '/')
  66.         type = AD_X400_TYPE;
  67.     else 
  68.         type = AD_822_TYPE;
  69.  
  70.     ad = adr_new(str, type, 0);
  71.     ad -> ad_resp = responsibility;
  72.     origType = ad->ad_type;
  73.  
  74.     if (rp_isbad(ad_parse(ad, &rp, parse)))
  75.         printf("Address parsing failed:\nReason: %s\nParsing gave this:\n\n", ad->ad_parse_message);
  76.     if (isstr(ad->ad_r400adr))
  77.         printf("%s\n", ad->ad_r400adr);
  78. }
  79.